Automated software testing tools for software applications have been offered commercially since the late 1970s. Users of these tools can write scripts that provide then with instructions to simulate user actions including computer mouse movements and keyboard presses. Automated testing tools can also be programmed to capture values and state information from the application under test so that these values can be compared to benchmarks and used to ascertain whether the application under test is performing according to specification.
Existing tools allow users to create scripts via manual coding and recording. Manual coding involves writing instructions in a scripting language. Although this method can produce scripts that reliably simulate user actions, these scripts tend to be difficult to create and require the user to be skilled in programming.
Recorders are software programs that monitor and capture user activity including mouse movements and keyboard presses. These events are saved into a file called a recording. Although recorders provide ease of use over manual coding, they can produce scripts that do not work reliably and are difficult to maintain.